{
    let c = [1, 8, 3, 4, 5]

    //every() 方法用于检测数组所有元素是否都符合指定条件（通过函数提供）。
    //every() 方法使用指定函数检测数组中的所有元素：

    // 注意： every() 不会对空数组进行检测。
    //注意： every() 不会改变原始数组。
    let arr = c.every(function (v, i, arr) {
        if (v <= 5) {
            return true;
        } else {
            console.log(v)
            return false
        }
    })
    console.log("arr", arr)
    // 如果数组中检测到有一个元素不满足，则整个表达式返回 false ，且剩余的元素不会再进行检测。
    // 如果所有元素都满足条件，则返回 true。
}


{
    //some() 方法用于检测数组中的元素是否满足指定条件（函数提供）。
    //some() 方法会依次执行数组的每个元素：
    //如果有一个元素满足条件，则表达式返回true , 剩余的元素不会再执行检测。
    //如果没有满足条件的元素，则返回false。
    //注意： some() 不会对空数组进行检测。
    //注意： some() 不会改变原始数组。

    let c = [1, 8, 3, 4, 5]
    let arr = c.some(function (v, i, arr) {
        if (v >= 5) {
            // console.log(v)
            return true;
        } else {
            // console.log(v)
            return false
        }
    })
    console.log("arr", arr)
}

{
    //forEach() 方法用于调用数组的每个元素，并将元素传递给回调函数。
    //注意: forEach() 对于空数组是不会执行回调函数的。
    let c = [1, 8, 3, 4, 5]
    let arr = c.forEach(function arr(v, i, arr) {
        console.log(v)
    })
    console.log("arr", arr)
}

{
    let c = [1, 8, 3, 4, 5]
    //map() 方法返回一个新数组，数组中的元素为原始数组元素调用函数处理后的值。
    //map() 方法按照原始数组元素顺序依次处理元素。
    //注意： map() 不会对空数组进行检测。
    //注意： map() 不会改变原始数组。
    var zcc = c.map(function (v, i, arr) {
        if (v == 1) {
            v = 0
        }
        if (v == 8) {
            return 8
        }
        return v + "v"
    })
    console.log(zcc, c)
}


{
    //filter() 方法创建一个新的数组， 新数组中的元素是通过检查指定数组中符合条件的所有元素。
    //注意： filter() 不会对空数组进行检测。
    //注意： filter() 不会改变原始数组。
    let c = [1, 8, 3, 4, 5]
    var zcc = c.filter(function (v, i, arr) {
        return (v < 8)
    })
    console.log(zcc)


    //map和filter 区别
    let cc = [{
        name: 'zlt',
        sex: 'man'
    }, {
        name: 'zcc',
        sex: 'wan'
    }, {
        name: 'lyy',
        sex: 'wan'
    }]
    let arrfilter = cc.filter((v, i, arr) => {
        if (v.sex == 'man') {
            return (v.name + '男')
        }
    })
    console.log('arrfilter', arrfilter) //[ { name: 'zlt', sex: 'man' } ]
    let arrmap = cc.map((v, i, arr) => {
        if (v.sex == 'man') {
            return (v.name + '男')
        }
    })
    console.log("arrmap", arrmap) //[ 'zlt男', undefined, undefined ]


}

{
    //reduce() 方法接收一个函数作为累加器，数组中的每个值（从左到右）开始缩减，最终计算为一个值。
    //reduce() 可以作为一个高阶函数，用于函数的 compose。
    //注意: reduce() 对于空数组是不会执行回调函数的。
    let c = [1, 8, 3, 4, 5]
    var zcc = c.reduce(function (sum, value) {
        console.log(sum)
        return sum + value
    }, 1) //从第几个开始
    console.log(zcc) // 总数
}

{
    let c = [1, 8, 3, 4, 5]
    for (var i = 0; i < c.length; i++) {

        if (c[i] == 4) {

            break;

        } else {
            console.log(c[i])
        }

    }
}
spacing({
    fontSize: 0.36,
    lineHeight: 0.36,
    bottom: 0.19
}, {
    fontSize: 0.16,
    lineHeight: 0.28,
})

function spacing(elemenTop, elemenBottom) {
    let spacing = 0;

    let elementTopspacing = (elemenTop.lineHeight - elemenTop.fontSize) / 2;
    let elementBottomspacing = (elemenBottom.lineHeight - elemenBottom.fontSize) / 2;
    if (elemenBottom.fontSize === 0) {
        spacing = elemenTop.bottom - elementTopspacing
    } else {
        console.log(elementTopspacing , elementBottomspacing)
        spacing = elemenTop.bottom - elementTopspacing - elementBottomspacing
    }

    console.log(spacing)
}